RNA-Seq: Pathway analysis using cameraPR and fGSEA

Libraries required

library(plotly)
library(fgsea)
library(limma)
library(plgINS)
library(multiGSEA)
library(EnrichmentBrowser)
library(grid)
library(gridExtra)
library(heatmaply)

Data setup

load("input/limma_SC_Controls_lab_lit.RData")
load("input/gencode.vM18.anno.RData")

Genes with length information

genes <- anno[, c(2, 3, 6, 7, 10)]
genes <- genes[!duplicated(genes), ]

g1 <- genes[!genes$entrez_id %in% genes$entrez_id[duplicated(genes$entrez_id)], ]
g2 <- genes[genes$entrez_id %in% genes$entrez_id[duplicated(genes$entrez_id)], ]

g2 <- g2[!duplicated(g2$ensembl), ]
g2 <- g2[!duplicated(g2$symbol), ]
g2$entrez_id[duplicated(g2$entrez_id)] <- g2$symbol[duplicated(g2$entrez_id)]

genes.f <- rbind(g1, g2)
rownames(genes.f) <- genes.f$entrez_id

GeneSets

if (!file.exists("output/pathways.rds")) {
  MSigdb <- getMSigGeneSetDb(
    collection = c("c1", "c2", "c3", "c4", "c5", "c6", "c7", "h"),
    species = "mouse", with.kegg = T, species.specific = T
  )

  go <- GeneSetDb(getGenesets(org = "mmu", db = "go"), collectionName = "Gene Ontology")
  go.bp <- GeneSetDb(getGenesets(org = "mmu", go.onto = "BP"), collectionName = "GO_BP")
  go.mf <- GeneSetDb(getGenesets(org = "mmu", go.onto = "MF"), collectionName = "GO_MF")
  go.cc <- GeneSetDb(getGenesets(org = "mmu", go.onto = "CC"), collectionName = "GO_CC")

  kegg <- GeneSetDb(getGenesets(org = "mmu", db = "kegg"), collectionName = "KEGG")

  reactome <- getReactomeGeneSetDb(species = "mouse", rm.species.prefix = T)

  gdb <- Reduce(append, list(go, go.bp, go.cc, go.mf, kegg, reactome, MSigdb))
  gdb@table$organism <- "Mus musculus"

  pathwaysDB <- data.frame(gdb@db, stringsAsFactors = F)
  pathwaysDB$symbol_anno <- genes.f[pathwaysDB$featureId, "symbol"]
  pathwaysDB$symbol_anno[is.na(pathwaysDB$symbol_anno)] <- pathwaysDB$featureId[is.na(pathwaysDB$symbol_anno)]

  pathways <- split(x = pathwaysDB[, c(1, 2, 5)], f = pathwaysDB$collection)
  pathways <- lapply(pathways, function(x) split(x[, 3], x$name))

  saveRDS(object = pathways, file = "output/pathways.rds")
} else {
  pathways <- readRDS("output/pathways.rds")
}

pathways <- pathways[5:7]

fgsea

fgsea.pnd8.pnd15 <- lapply(pathways, function(x) {
  dea <- dea.limma$`pnd8 vs pnd15`
  genes <- dea$t
  names(genes) <- dea$Genes
  res <- fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, maxSize = 1000, nproc = detectCores() - 1)
  # res <- data.frame(res[res$padj <= 0.05, ])
  rownames(res) <- res$pathway
  return(res)
})

fgsea.pnd15.adult <- lapply(pathways, function(x) {
  dea <- dea.limma$`pnd14 vs pnw8`
  genes <- dea$logFC
  names(genes) <- dea$Genes
  res <- fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, maxSize = 1000, nproc = detectCores() - 1)
  # res <- data.frame(res[res$padj <= 0.05, ])
  rownames(res) <- res$pathway
  return(res)
})
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, : There are ties in the preranked stats (7.45% of the list).
## The order of those tied genes will be arbitrary, which may produce unexpected results.
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, :
## There were 44 pathways for which P-values were not calculated properly due to
## unbalanced gene-level statistic values
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, : There are ties in the preranked stats (7.45% of the list).
## The order of those tied genes will be arbitrary, which may produce unexpected results.
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, :
## There were 36 pathways for which P-values were not calculated properly due to
## unbalanced gene-level statistic values
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, : There are ties in the preranked stats (7.45% of the list).
## The order of those tied genes will be arbitrary, which may produce unexpected results.
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, :
## There were 27 pathways for which P-values were not calculated properly due to
## unbalanced gene-level statistic values

cameraPR

Function

cameraPR <- function(statistic, index, use.ranks = FALSE, inter.gene.cor = 0.01, sort = TRUE, ...) {
  dots <- names(list(...))
  if (length(dots)) warning("Extra arguments disregarded: ", sQuote(dots))

  #     Check statistic
  if (is.list(statistic)) stop("statistic should be a numeric vector")
  storage.mode(statistic) <- "numeric"
  if (anyNA(statistic)) stop("NA values for statistic not allowed")
  G <- length(statistic)
  ID <- names(statistic)
  if (G < 3) stop("Too few genes in dataset: need at least 3")

  #     Check index
  if (!is.list(index)) index <- list(set1 = index)
  index <- index[which(!sapply(index, function(x) length(x) < 10))] # ADDED BY ASA 190527 to mimic fgsea minSize = 10
  nsets <- length(index)

  #     Check inter.gene.cor
  if (anyNA(inter.gene.cor)) stop("NA inter.gene.cor not allowed")
  if (any(abs(inter.gene.cor) >= 1)) stop("inter.gene.cor too large or small")
  if (length(inter.gene.cor) > 1L) {
    if (length(inter.gene.cor) != nsets) stop("Length of inter.gene.cor doesn't match number of sets")
    fixed.cor <- FALSE
  } else {
    fixed.cor <- TRUE
    inter.gene.cor <- rep_len(inter.gene.cor, nsets)
  }

  #     Set df
  if (use.ranks) {
    df.camera <- Inf
  } else {
    df.camera <- G - 2L
  }

  #     Global statistics
  meanStat <- mean(statistic)
  varStat <- var(statistic)
  tst <- c() ### ADDED BY ASA on 190514
  NGenes <- Down <- Up <- rep_len(0, nsets)
  for (i in 1:nsets) {
    iset <- index[[i]]
    if (is.character(iset)) iset <- which(ID %in% iset)
    StatInSet <- statistic[iset]
    m <- length(StatInSet)
    NGenes[i] <- m
    if (use.ranks) {
      p.value <- rankSumTestWithCorrelation(iset,
        statistics = statistic,
        correlation = inter.gene.cor[i], df = df.camera
      )
      Down[i] <- p.value[1]
      Up[i] <- p.value[2]
    } else {
      vif <- 1 + (m - 1) * inter.gene.cor[i]
      m2 <- G - m
      meanStatInSet <- mean(StatInSet)
      delta <- G / m2 * (meanStatInSet - meanStat)
      varStatPooled <- ((G - 1L) * varStat - delta^2 * m * m2 / G) / (G - 2L)
      two.sample.t <- delta / sqrt(varStatPooled * (vif / m + 1 / m2))
      tst[i] <- two.sample.t ### ADDED BY ASA on 190514
      Down[i] <- pt(two.sample.t, df = df.camera)
      Up[i] <- pt(two.sample.t, df = df.camera, lower.tail = FALSE)
    }
  }
  TwoSided <- 2 * pmin(Down, Up)
  #     Assemble into data.frame
  D <- (Down < Up)
  Direction <- rep_len("Up", nsets)
  Direction[D] <- "Down"
  if (fixed.cor) {
    tab <- data.frame(NGenes = NGenes, Direction = Direction, PValue = TwoSided, TwoSampT = tst, stringsAsFactors = FALSE)
  } ### ADDED TwoSampT on 190514
  else {
    tab <- data.frame(NGenes = NGenes, Correlation = inter.gene.cor, Direction = Direction, PValue = TwoSided, stringsAsFactors = FALSE)
  }
  rownames(tab) <- names(index)

  #     Add FDR
  if (nsets > 1L) tab$FDR <- p.adjust(tab$PValue, method = "BH")

  #     Sort by p-value
  if (sort && nsets > 1L) {
    o <- order(tab$PValue)
    tab <- tab[o, ]
  }

  tab
}

cameraPR

cameraPR.pnd8.pnd15 <- lapply(pathways, function(x) {
  dea <- dea.limma$`pnd8 vs pnd15`
  genes <- dea$t
  names(genes) <- dea$Genes
  res <- cameraPR(genes, x)
  # res <- res[res$FDR <= 0.05, ]
  res <- data.frame(pathway = rownames(res), res, stringsAsFactors = F)
  return(res)
})

cameraPR.pnd15.adult <- lapply(pathways, function(x) {
  dea <- dea.limma$`pnd14 vs pnw8`
  genes <- dea$logFC
  names(genes) <- dea$Genes
  res <- cameraPR(genes, x)
  # res <- res[res$FDR <= 0.05, ]
  res <- data.frame(pathway = rownames(res), res, stringsAsFactors = F)
  return(res)
})

Results

Tables

Function

make_DT <- function(df) {
  df <- data.frame(df, stringsAsFactors = F, check.names = F)
  DT::datatable(
    df,
    rownames = F,
    filter = "top", extensions = c("Buttons", "ColReorder"), options = list(
      pageLength = 10,
      buttons = c("copy", "csv", "excel", "pdf", "print"),
      colReorder = list(realtime = FALSE),
      dom = "fltBip"
    )
  )
}

PND8 vs PND15

fgsea.pnd8.pnd15 <- lapply(fgsea.pnd8.pnd15, function(x) {
  x$leadingEdgeGenes <- NA
  for (i in 1:nrow(x)) {
    x$leadingEdgeGenes[i] <- paste(x$leadingEdge[[i]], collapse = ",")
  }
  x <- data.frame(x)
  x <- x[, !colnames(x) %in% "leadingEdge"]
  return(x)
})

path <- fgsea.pnd8.pnd15

for (i in 1:length(path)) {
  n <- paste0("./output/fGSEA_PND8vsPND15_", names(path)[i], ".xlsx")
  n <- gsub(pattern = " ", replacement = "-", x = n)
  writexl::write_xlsx(x = data.frame(path[[i]]), path = n, col_names = T, format_headers = T)
}

CameraPR

path <- cameraPR.pnd8.pnd15

for (i in 1:length(path)) {
  n <- paste0("./output/cameraPR_PND8vsPND15_", names(path)[i], ".xlsx")
  n <- gsub(pattern = " ", replacement = "-", x = n)
  writexl::write_xlsx(x = path[[i]], path = n, col_names = T, format_headers = T)
}

PND14 vs PNW8

fGSEA

fgsea.pnd15.adult <- lapply(fgsea.pnd15.adult, function(x) {
  x$leadingEdgeGenes <- NA
  for (i in 1:nrow(x)) {
    x$leadingEdgeGenes[i] <- paste(x$leadingEdge[[i]], collapse = ",")
  }
  x <- data.frame(x)
  x <- x[, !colnames(x) %in% "leadingEdge"]
  return(x)
})

path <- fgsea.pnd15.adult

for (i in 1:length(path)) {
  n <- paste0("./output/fGSEA_PND14vsPNW8_", names(path)[i], ".xlsx")
  n <- gsub(pattern = " ", replacement = "-", x = n)
  writexl::write_xlsx(x = path[[i]], path = n, col_names = T, format_headers = T)
}

CameraPR

path <- cameraPR.pnd15.adult

for (i in 1:length(path)) {
  n <- paste0("./output/cameraPR_PND14vsPNW8_", names(path)[i], ".xlsx")
  n <- gsub(pattern = " ", replacement = "-", x = n)
  writexl::write_xlsx(x = path[[i]], path = n, col_names = T, format_headers = T)
}

Common pathways

PND8 vs PND15

common.pnd8vspnd15 <- list()

for (i in 1:length(fgsea.pnd8.pnd15)) {
  n <- names(fgsea.pnd8.pnd15)[i]
  tab1 <- fgsea.pnd8.pnd15[[n]]
  colnames(tab1)[2:ncol(tab1)] <- paste("fGSEA", colnames(tab1)[2:ncol(tab1)], sep = "-")
  tab2 <- cameraPR.pnd8.pnd15[[n]]
  colnames(tab2)[2:ncol(tab2)] <- paste("cameraPR", colnames(tab2)[2:ncol(tab2)], sep = "-")
  tab <- merge(tab1, tab2, by = "pathway")

  common.pnd8vspnd15[[i]] <- tab
  names(common.pnd8vspnd15)[i] <- n

  writexl::write_xlsx(
    x = tab, path = paste0("./output/common_PND8vsPND15_", n, ".xlsx"),
    col_names = T, format_headers = T
  )
}

PND15 vs Adult

common.pnd15vsadult <- list()

for (i in 1:length(fgsea.pnd15.adult)) {
  n <- names(fgsea.pnd15.adult)[i]
  tab1 <- fgsea.pnd15.adult[[n]]
  colnames(tab1)[2:ncol(tab1)] <- paste("fGSEA", colnames(tab1)[2:ncol(tab1)], sep = "-")
  tab2 <- cameraPR.pnd15.adult[[n]]
  colnames(tab2)[2:ncol(tab2)] <- paste("cameraPR", colnames(tab2)[2:ncol(tab2)], sep = "-")
  tab <- merge(tab1, tab2, by = "pathway")

  common.pnd15vsadult[[i]] <- tab
  names(common.pnd15vsadult)[i] <- n

  writexl::write_xlsx(
    x = tab, path = paste0("./output/common_PND14vsPNW8_", n, ".xlsx"),
    col_names = T, format_headers = T
  )
}

References

report::cite_packages(sessionInfo())
## Warning in citation(pkg_name): no date field in DESCRIPTION file of package
## 'multiGSEA'
## Warning in citation(pkg_name): no date field in DESCRIPTION file of package
## 'plgINS'

SessionInfo

devtools::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       Ubuntu 16.04.7 LTS          
##  system   x86_64, linux-gnu           
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       Europe/Zurich               
##  date     2020-10-06                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  package              * version    date       lib
##  annotate               1.64.0     2019-10-29 [1]
##  AnnotationDbi          1.48.0     2019-10-29 [1]
##  assertthat             0.2.1      2019-03-21 [1]
##  backports              1.1.8      2020-06-17 [1]
##  base64enc              0.1-3      2015-07-28 [1]
##  Biobase              * 2.46.0     2019-10-29 [1]
##  BiocGenerics         * 0.32.0     2019-10-29 [1]
##  BiocParallel         * 1.20.1     2019-12-21 [1]
##  Biostrings             2.54.0     2019-10-29 [1]
##  bit                    4.0.4      2020-08-04 [1]
##  bit64                  4.0.2      2020-07-30 [1]
##  bitops                 1.0-6      2013-08-17 [1]
##  blob                   1.2.1      2020-01-20 [1]
##  bookdown               0.20       2020-06-23 [1]
##  callr                  3.4.3      2020-03-28 [1]
##  caTools                1.18.0     2020-01-17 [1]
##  checkmate              2.0.0      2020-02-06 [1]
##  circlize               0.4.10     2020-06-15 [1]
##  cli                    2.0.2      2020-02-28 [1]
##  clue                   0.3-57     2019-02-25 [1]
##  cluster                2.1.0      2019-06-19 [1]
##  codetools              0.2-16     2018-12-24 [1]
##  colorspace             1.4-1      2019-03-18 [1]
##  ComplexHeatmap         2.5.5      2020-08-13 [1]
##  crayon                 1.3.4      2017-09-16 [1]
##  crosstalk              1.1.0.1    2020-03-13 [1]
##  data.table             1.13.0     2020-07-24 [1]
##  DBI                    1.1.0      2019-12-15 [1]
##  DelayedArray         * 0.12.3     2020-04-09 [1]
##  dendextend             1.13.4     2020-02-28 [1]
##  desc                   1.2.0      2018-05-01 [1]
##  DESeq2                 1.26.0     2019-10-29 [1]
##  devtools               2.3.1      2020-07-21 [1]
##  digest                 0.6.25     2020-02-23 [1]
##  dplyr                  1.0.1      2020-07-31 [1]
##  DT                   * 0.15       2020-08-05 [1]
##  edgeR                * 3.28.1     2020-02-26 [1]
##  ellipsis               0.3.1      2020-05-15 [1]
##  EnrichmentBrowser    * 2.16.1     2019-12-04 [1]
##  evaluate               0.14       2019-05-28 [1]
##  fansi                  0.4.1      2020-01-08 [1]
##  fastmap                1.0.1      2019-10-08 [1]
##  fastmatch              1.1-0      2017-01-28 [1]
##  fgsea                * 1.12.0     2019-10-29 [1]
##  foreach                1.5.0      2020-03-30 [1]
##  foreign                0.8-76     2020-03-03 [1]
##  Formula                1.2-3      2018-05-03 [1]
##  fs                     1.5.0      2020-07-31 [1]
##  gclus                  1.3.2      2019-01-07 [1]
##  gdata                  2.18.0     2017-06-06 [1]
##  genefilter             1.68.0     2019-10-29 [1]
##  geneplotter            1.64.0     2019-10-29 [1]
##  generics               0.0.2      2018-11-29 [1]
##  GenomeInfoDb         * 1.22.1     2020-03-27 [1]
##  GenomeInfoDbData       1.2.2      2019-11-18 [1]
##  GenomicRanges        * 1.38.0     2019-10-29 [1]
##  GEOquery               2.54.1     2019-11-18 [1]
##  GetoptLong             1.0.2      2020-07-06 [1]
##  ggplot2              * 3.3.2      2020-06-19 [1]
##  GlobalOptions          0.1.2      2020-06-10 [1]
##  glue                   1.4.1      2020-05-13 [1]
##  gplots                 3.0.4      2020-07-05 [1]
##  graph                * 1.64.0     2019-10-29 [1]
##  gridExtra            * 2.3        2017-09-09 [1]
##  GSEABase               1.48.0     2019-10-29 [1]
##  GSVA                   1.34.0     2019-10-29 [1]
##  gtable                 0.3.0      2019-03-25 [1]
##  gtools                 3.8.2      2020-03-31 [1]
##  heatmaply            * 1.1.0      2020-03-28 [1]
##  Hmisc                  4.4-1      2020-08-10 [1]
##  hms                    0.5.3      2020-01-08 [1]
##  htmlTable              2.0.1      2020-07-05 [1]
##  htmltools              0.5.0      2020-06-16 [1]
##  htmlwidgets            1.5.1      2019-10-08 [1]
##  httpuv                 1.5.4      2020-06-06 [1]
##  httr                   1.4.2      2020-07-20 [1]
##  insight                0.9.0      2020-07-20 [1]
##  IRanges              * 2.20.2     2020-01-13 [1]
##  iterators              1.0.12     2019-07-26 [1]
##  jpeg                   0.1-8.1    2019-10-24 [1]
##  jsonlite               1.7.0      2020-06-25 [1]
##  KEGGgraph              1.46.0     2019-10-29 [1]
##  KernSmooth             2.23-17    2020-04-26 [1]
##  knitr                  1.29       2020-06-23 [1]
##  later                  1.1.0.1    2020-06-05 [1]
##  lattice                0.20-41    2020-04-02 [1]
##  latticeExtra           0.6-29     2019-12-19 [1]
##  lazyeval               0.2.2      2019-03-15 [1]
##  lifecycle              0.2.0      2020-03-06 [1]
##  limma                * 3.42.2     2020-02-03 [1]
##  locfit                 1.5-9.4    2020-03-25 [1]
##  magrittr               1.5        2014-11-22 [1]
##  MASS                   7.3-51.6   2020-04-26 [1]
##  Matrix                 1.2-18     2019-11-27 [1]
##  matrixStats          * 0.56.0     2020-03-13 [1]
##  memoise                1.1.0.9000 2020-05-06 [1]
##  mime                   0.9        2020-02-04 [1]
##  multiGSEA            * 0.11.1     2019-01-29 [1]
##  munsell                0.5.0      2018-06-12 [1]
##  nnet                   7.3-14     2020-04-26 [1]
##  pillar                 1.4.6      2020-07-10 [1]
##  pkgbuild               1.1.0      2020-07-13 [1]
##  pkgconfig              2.0.3      2019-09-22 [1]
##  pkgload                1.1.0      2020-05-29 [1]
##  plgINS               * 0.1.5      2020-07-10 [1]
##  plotly               * 4.9.2.1    2020-04-04 [1]
##  plyr                   1.8.6      2020-03-03 [1]
##  png                    0.1-7      2013-12-03 [1]
##  prettyunits            1.1.1      2020-01-24 [1]
##  processx               3.4.3      2020-07-05 [1]
##  promises               1.1.1      2020-06-09 [1]
##  ps                     1.3.3      2020-05-08 [1]
##  purrr                  0.3.4      2020-04-17 [1]
##  R6                     2.4.1      2019-11-12 [1]
##  rappdirs               0.3.1      2016-03-28 [1]
##  RColorBrewer           1.1-2      2014-12-07 [1]
##  Rcpp                 * 1.0.5      2020-07-06 [1]
##  RCurl                  1.98-1.2   2020-04-18 [1]
##  readr                  1.3.1      2018-12-21 [1]
##  registry               0.5-1      2019-03-05 [1]
##  remotes                2.2.0      2020-07-21 [1]
##  report                 0.1.0      2020-03-19 [1]
##  reshape2               1.4.4      2020-04-09 [1]
##  rjson                  0.2.20     2018-06-08 [1]
##  rlang                  0.4.7      2020-07-09 [1]
##  rmarkdown              2.3        2020-06-18 [1]
##  rmdformats             0.4.0      2020-06-07 [1]
##  rpart                  4.1-15     2019-04-12 [1]
##  rprojroot              1.3-2      2018-01-03 [1]
##  RSQLite                2.1.4      2019-12-04 [1]
##  rstudioapi             0.11       2020-02-07 [1]
##  S4Vectors            * 0.24.4     2020-04-09 [1]
##  scales                 1.1.1      2020-05-11 [1]
##  seriation              1.2-8      2019-08-27 [1]
##  sessioninfo            1.1.1      2018-11-05 [1]
##  shape                  1.4.4      2018-02-07 [1]
##  shiny                  1.5.0      2020-06-23 [1]
##  shinythemes            1.1.2      2018-11-06 [1]
##  SRAdb                  1.48.2     2019-12-24 [1]
##  stringi                1.4.6      2020-02-17 [1]
##  stringr                1.4.0      2019-02-10 [1]
##  SummarizedExperiment * 1.16.1     2019-12-19 [1]
##  survival               3.2-3      2020-06-13 [1]
##  testthat               2.3.2      2020-03-02 [1]
##  tibble                 3.0.3      2020-07-10 [1]
##  tidyr                  1.1.0      2020-05-20 [1]
##  tidyselect             1.1.0      2020-05-11 [1]
##  TSP                    1.1-10     2020-04-17 [1]
##  usethis                1.6.1      2020-04-29 [1]
##  vctrs                  0.3.2      2020-07-15 [1]
##  viridis              * 0.5.1      2018-03-29 [1]
##  viridisLite          * 0.3.0      2018-02-01 [1]
##  webshot                0.5.2      2019-11-22 [1]
##  withr                  2.2.0      2020-04-20 [1]
##  writexl                1.3        2020-05-05 [1]
##  xfun                   0.16       2020-07-24 [1]
##  XML                    3.99-0.3   2020-01-20 [1]
##  xml2                   1.3.2      2020-04-23 [1]
##  xtable                 1.8-4      2019-04-21 [1]
##  XVector                0.26.0     2019-10-29 [1]
##  yaml                   2.2.1      2020-02-01 [1]
##  zlibbioc               1.32.0     2019-10-29 [1]
##  source                                  
##  Bioconductor                            
##  Bioconductor                            
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  Bioconductor                            
##  Bioconductor                            
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  Github (jokergoo/ComplexHeatmap@57491b0)
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  Bioconductor                            
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  Bioconductor                            
##  Bioconductor                            
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  Bioconductor                            
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  Github (r-lib/memoise@4aefd9f)          
##  CRAN (R 3.6.2)                          
##  Github (lianos/multiGSEA@b8747ab)       
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  local                                   
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  Github (easystats/report@dcdd283)       
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  Github (juba/rmdformats@94cd7a3)        
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.1)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.2)                          
##  CRAN (R 3.6.1)                          
##  Bioconductor                            
##  CRAN (R 3.6.2)                          
##  Bioconductor                            
## 
## [1] /home/ubuntu/R/x86_64-pc-linux-gnu-library/3.6
## [2] /usr/local/lib/R/site-library
## [3] /usr/lib/R/site-library
## [4] /usr/lib/R/library